﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СтатусыНалогоплательщиковПоНДФЛ
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"88e1bc5c-b7a6-4ee9-9230-767fcc7cfee9\", \"Представление\":\"Резидент\"}")]
		Резидент = 0,
		[EnumMember(Value = "{\"Ссылка\":\"638dadf5-3885-4e5a-b388-aedc3d7a8da0\", \"Представление\":\"НеРезидент\"}")]
		НеРезидент = 1,
		[EnumMember(Value = "{\"Ссылка\":\"0881608c-2c74-4a28-9999-21d038d4c866\", \"Представление\":\"ВысококвалифицированныйИностранныйСпециалист\"}")]
		ВысококвалифицированныйИностранныйСпециалист = 2,//Высококвалифицированный иностранный специалист
		[EnumMember(Value = "{\"Ссылка\":\"3282b432-4079-4223-b603-39fb5aa25cce\", \"Представление\":\"УчастникПрограммыПоПереселениюСоотечественников\"}")]
		УчастникПрограммыПоПереселениюСоотечественников = 3,//Участник программы по переселению соотечественников
		[EnumMember(Value = "{\"Ссылка\":\"6433c02b-e5ff-4ff8-ba9b-b397ad1a3264\", \"Представление\":\"ЧленЭкипажаСуднаПодФлагомРФ\"}")]
		ЧленЭкипажаСуднаПодФлагомРФ = 4,//Член экипажа судна, плавающего под Государственным флагом РФ
	}
	public static partial class СтатусыНалогоплательщиковПоНДФЛ_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid Резидент = new Guid("7f763092-7ccc-e9fe-4ee9-b7a688e1bc5c");
		public static readonly Guid НеРезидент = new Guid("dcae88b3-7a3d-a08d-4e5a-3885638dadf5");
		public static readonly Guid ВысококвалифицированныйИностранныйСпециалист = new Guid("d0219999-d438-66c8-4a28-2c740881608c");//Высококвалифицированный иностранный специалист
		public static readonly Guid УчастникПрограммыПоПереселениюСоотечественников = new Guid("fb3903b6-a25a-ce5c-4223-40793282b432");//Участник программы по переселению соотечественников
		public static readonly Guid ЧленЭкипажаСуднаПодФлагомРФ = new Guid("97b39bba-1aad-6432-4ff8-e5ff6433c02b");//Член экипажа судна, плавающего под Государственным флагом РФ
		public static СтатусыНалогоплательщиковПоНДФЛ Получить(this СтатусыНалогоплательщиковПоНДФЛ Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СтатусыНалогоплательщиковПоНДФЛ Получить(this СтатусыНалогоплательщиковПоНДФЛ Значение, Guid Ссылка)
		{
			if(Ссылка == Резидент)
			{
				return СтатусыНалогоплательщиковПоНДФЛ.Резидент;
			}
			else if(Ссылка == НеРезидент)
			{
				return СтатусыНалогоплательщиковПоНДФЛ.НеРезидент;
			}
			else if(Ссылка == ВысококвалифицированныйИностранныйСпециалист)
			{
				return СтатусыНалогоплательщиковПоНДФЛ.ВысококвалифицированныйИностранныйСпециалист;
			}
			else if(Ссылка == УчастникПрограммыПоПереселениюСоотечественников)
			{
				return СтатусыНалогоплательщиковПоНДФЛ.УчастникПрограммыПоПереселениюСоотечественников;
			}
			else if(Ссылка == ЧленЭкипажаСуднаПодФлагомРФ)
			{
				return СтатусыНалогоплательщиковПоНДФЛ.ЧленЭкипажаСуднаПодФлагомРФ;
			}
			return СтатусыНалогоплательщиковПоНДФЛ.ПустаяСсылка;
		}
		public static byte[] Ключ(this СтатусыНалогоплательщиковПоНДФЛ Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СтатусыНалогоплательщиковПоНДФЛ Значение)
		{
			switch (Значение)
			{
				case СтатусыНалогоплательщиковПоНДФЛ.Резидент: return Резидент;
				case СтатусыНалогоплательщиковПоНДФЛ.НеРезидент: return НеРезидент;
				case СтатусыНалогоплательщиковПоНДФЛ.ВысококвалифицированныйИностранныйСпециалист: return ВысококвалифицированныйИностранныйСпециалист;
				case СтатусыНалогоплательщиковПоНДФЛ.УчастникПрограммыПоПереселениюСоотечественников: return УчастникПрограммыПоПереселениюСоотечественников;
				case СтатусыНалогоплательщиковПоНДФЛ.ЧленЭкипажаСуднаПодФлагомРФ: return ЧленЭкипажаСуднаПодФлагомРФ;
			}
			return Guid.Empty;
		}
	}
}